<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Computer graphics lighting</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/Computer_graphics_lighting"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Computer_graphics_lighting rootpage-Computer_graphics_lighting skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">Computer graphics lighting</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr">
<p><b>Computer graphics lighting</b> encompasses the range of techniques used to simulate light within <a href="Computer_graphics" title="Computer graphics">computer graphics</a>. These methods vary in <a href="Computational_complexity" title="Computational complexity">computational complexity</a>, offering artists flexibility in both visual detail and performance. Graphics professionals can select from a wide array of <a href="Light_source" class="mw-redirect" title="Light source">light sources</a>, <a href="Lighting_model" class="mw-redirect" title="Lighting model">lighting models</a>, <a href="Shading" title="Shading">shading</a> techniques, and effects to meet the specific requirements of each project.
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="Light_sources">Light sources</h2></div>
<p>Light sources allow for different ways to introduce light into graphics scenes.<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-:7_2-0" class="reference"><a href="#cite_note-:7-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Point">Point</h3></div>
<p>Point sources emit light from a single point in all directions, with the intensity of the light decreasing with distance.<sup id="cite_ref-:72_3-0" class="reference"><a href="#cite_note-:72-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> An example of a point source is a standalone light bulb.<sup id="cite_ref-:8_4-0" class="reference"><a href="#cite_note-:8-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Directional">Directional</h3></div>
<p>A directional source (or distant source) uniformly lights a scene from one direction.<sup id="cite_ref-:8_4-1" class="reference"><a href="#cite_note-:8-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> Unlike a point source, the intensity of light produced by a directional source does not change with distance over the scale of the scene, as the directional source is treated as though it is extremely far away.<sup id="cite_ref-:8_4-2" class="reference"><a href="#cite_note-:8-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> An example of a directional source is sunlight on Earth.<sup id="cite_ref-:9_5-0" class="reference"><a href="#cite_note-:9-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Spotlight">Spotlight</h3></div>
<p>A spotlight produces a directed <a href="Cone" title="Cone">cone</a> of light.<sup id="cite_ref-:73_6-0" class="reference"><a href="#cite_note-:73-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup> The light becomes more intense as the viewer gets closer to the spotlight source and to the center of the light cone.<sup id="cite_ref-:73_6-1" class="reference"><a href="#cite_note-:73-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup> An example of a spotlight is a flashlight.<sup id="cite_ref-:9_5-1" class="reference"><a href="#cite_note-:9-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Area">Area</h3></div>
<p>Area lights are 3D objects which emit light. Whereas point lights and spot lights sources are considered infinitesimally small points, area lights are treated as physical shapes.<sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> Area light produce softer shadows and more realistic lighting than point lights and spot lights.<sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Ambient">Ambient</h3></div>
<p>Ambient light sources illuminate objects even when no other light source is present.<sup id="cite_ref-:73_6-2" class="reference"><a href="#cite_note-:73-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup> The intensity of ambient light is independent of direction, distance, and other objects, meaning the effect is completely uniform throughout the scene.<sup id="cite_ref-:73_6-3" class="reference"><a href="#cite_note-:73-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup> This source ensures that objects are visible even in complete darkness.<sup id="cite_ref-:9_5-2" class="reference"><a href="#cite_note-:9-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Lightwarp">Lightwarp</h3></div>
<p>A lightwarp is a technique of which an object in the geometrical world <a href="Refracts" class="mw-redirect" title="Refracts">refracts</a> light based on the <a href="Unit_vector" title="Unit vector">direction</a> and <a href="Intensity_(physics)" title="Intensity (physics)">intensity</a> of the light. The light is then <a href="Wave_function" title="Wave function">warped</a> using an ambient diffuse term with a range of the <a href="Color_spectrum" class="mw-redirect" title="Color spectrum">color spectrum</a>. The light then may be <a href="Reflectively" class="mw-redirect" title="Reflectively">reflectively</a> scattered to produce a higher <a href="Depth_of_field" title="Depth of field">depth of field</a>, and <a href="Refracted" class="mw-redirect" title="Refracted">refracted</a>. The technique is used to produce a <a href="Style_(visual_arts)#Stylization" title="Style (visual arts)">unique rendering style</a> and can be used to limit <a href="Overexposure" class="mw-redirect" title="Overexposure">overexposure</a> of objects. Games such as <a href="Team_Fortress_2" title="Team Fortress 2">Team Fortress 2</a> use the rendering technique to create a <a href="Cartoon" title="Cartoon">cartoon</a> <a href="Cel_shaded" class="mw-redirect" title="Cel shaded">cel shaded</a> stylized look.<sup id="cite_ref-9" class="reference"><a href="#cite_note-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="HDRI">HDRI</h3></div>
<p>HDRI stands for High dynamic range image and is a 360° image that is wrapped around a <a href="3D_modeling" title="3D modeling">3D model</a> as an outdoor setting and uses the sun typically as a light source in the sky. The <a href="Texture_mapping" title="Texture mapping">textures</a> from the model can reflect the direct and <a href="Shading#Ambient_lighting" title="Shading">ambient light</a> and colors from the HDRI.<sup id="cite_ref-10" class="reference"><a href="#cite_note-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Lighting_interactions">Lighting interactions</h2></div>
<p>In computer graphics, the overall effect of a light source on an object is determined by the combination of the object's interactions with it usually described by at least three main components.<sup id="cite_ref-:82_11-0" class="reference"><a href="#cite_note-:82-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup> The three primary lighting components (and subsequent interaction types) are diffuse, ambient, and specular.<sup id="cite_ref-:82_11-1" class="reference"><a href="#cite_note-:82-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Diffuse">Diffuse</h3></div>
<p>Diffuse lighting (or <a href="Diffuse_reflection" title="Diffuse reflection">diffuse reflection</a>) is the direct illumination of an object by an even amount of light interacting with a <a href="Scattering" title="Scattering">light-scattering</a> surface.<sup id="cite_ref-:8_4-3" class="reference"><a href="#cite_note-:8-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-:10_12-0" class="reference"><a href="#cite_note-:10-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup> After light strikes an object, it is <a href="Reflection_(computer_graphics)" title="Reflection (computer graphics)">reflected</a> as a function of the surface properties of the object as well as the angle of incoming light.<sup id="cite_ref-:10_12-1" class="reference"><a href="#cite_note-:10-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup> This interaction is the primary contributor to the object's brightness and forms the basis for its color.<sup id="cite_ref-:83_13-0" class="reference"><a href="#cite_note-:83-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Ambient_2">Ambient</h3></div>
<p>As ambient light is directionless, it interacts uniformly across all surfaces, with its intensity determined by the strength of the ambient light sources and the properties of objects' surface materials, namely their ambient <a href="Reflection_coefficient" title="Reflection coefficient">reflection coefficients</a>.<sup id="cite_ref-:83_13-1" class="reference"><a href="#cite_note-:83-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-:10_12-2" class="reference"><a href="#cite_note-:10-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Specular">Specular</h3></div>
<p>The <a href="Specular_highlight" title="Specular highlight">specular lighting</a> component gives objects shine and highlights.<sup id="cite_ref-:83_13-2" class="reference"><a href="#cite_note-:83-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup> This is distinct from mirror effects because other objects in the environment are not visible in these reflections.<sup id="cite_ref-:10_12-3" class="reference"><a href="#cite_note-:10-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup> Instead, specular lighting creates bright spots on objects based on the intensity of the specular lighting component and the specular reflection coefficient of the surface.<sup id="cite_ref-:10_12-4" class="reference"><a href="#cite_note-:10-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Illumination_models">Illumination models</h2></div>
<p>Lighting models are used to replicate lighting effects in <a href="Rendering_(computer_graphics)" title="Rendering (computer graphics)">rendered</a> environments where light is approximated based on the physics of light.<sup id="cite_ref-:1_14-0" class="reference"><a href="#cite_note-:1-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup> Without lighting models, replicating lighting effects as they occur in the natural world would require more processing power than is practical for computer graphics.<sup id="cite_ref-:1_14-1" class="reference"><a href="#cite_note-:1-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup> This lighting, or illumination model's purpose is to compute the color of every pixel or the amount of light reflected for different surfaces in the scene.<sup id="cite_ref-15" class="reference"><a href="#cite_note-15"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup> There are two main illumination models, object oriented lighting and global illumination.<sup id="cite_ref-:2_16-0" class="reference"><a href="#cite_note-:2-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup> They differ in that object oriented lighting considers each object individually, whereas global illumination maps how light interacts between objects.<sup id="cite_ref-:2_16-1" class="reference"><a href="#cite_note-:2-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup> Currently, researchers are developing global illumination techniques to more accurately replicate how light interacts with its environment.<sup id="cite_ref-:2_16-2" class="reference"><a href="#cite_note-:2-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Object_oriented_lighting">Object oriented lighting</h3></div>
<p>Object oriented lighting, also known as local illumination, is defined by mapping a single light source to a single object.<sup id="cite_ref-:3_17-0" class="reference"><a href="#cite_note-:3-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup> This technique is fast to compute, but often is an incomplete approximation of how light would behave in the scene in reality.<sup id="cite_ref-:3_17-1" class="reference"><a href="#cite_note-:3-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup> It is often approximated by summing a combination of specular, diffuse, and ambient light of a specific object.<sup id="cite_ref-:1_14-2" class="reference"><a href="#cite_note-:1-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup> The two predominant local illumination models are the Phong and the Blinn-Phong illumination models.<sup id="cite_ref-:4_18-0" class="reference"><a href="#cite_note-:4-18"><span class="cite-bracket">[</span>18<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading4"><h4 id="Phong_illumination_model">Phong illumination model</h4></div>
<style data-mw-deduplicate="TemplateStyles:r1236090951">
/* start https://en.wikipedia.org/ */
.mw-parser-output .hatnote{font-style:italic}.mw-parser-output div.hatnote{padding-left:1.6em;margin-bottom:0.5em}.mw-parser-output .hatnote i{font-style:normal}.mw-parser-output .hatnote+link+.hatnote{margin-top:-0.5em}@media print{body.ns-0 .mw-parser-output .hatnote{display:none!important}}
/* end https://en.wikipedia.org/ */
</style><div role="note" class="hatnote navigation-not-searchable">Main article: <a href="Phong_reflection_model" title="Phong reflection model">Phong reflection model</a></div>
<p>One of the most common reflection models is the Phong model.<sup id="cite_ref-:1_14-3" class="reference"><a href="#cite_note-:1-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup> The Phong model assumes that the intensity of each <a href="Pixel" title="Pixel">pixel</a> is the sum of the intensity due to diffuse, specular, and ambient lighting.<sup id="cite_ref-:3_17-2" class="reference"><a href="#cite_note-:3-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup> This model takes into account the location of a viewer to determine specular light using the angle of light reflecting off an object.<sup id="cite_ref-:4_18-1" class="reference"><a href="#cite_note-:4-18"><span class="cite-bracket">[</span>18<span class="cite-bracket">]</span></a></sup> The <a href="Trigonometric_functions" title="Trigonometric functions">cosine</a> of the angle is taken and raised to a power decided by the designer.<sup id="cite_ref-:3_17-3" class="reference"><a href="#cite_note-:3-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup> With this, the designer can decide how wide a highlight they want on an object; because of this, the power is called the shininess value.<sup id="cite_ref-:4_18-2" class="reference"><a href="#cite_note-:4-18"><span class="cite-bracket">[</span>18<span class="cite-bracket">]</span></a></sup> The shininess value is determined by the roughness of the surface where a mirror would have a value of infinity and the roughest surface might have a value of one.<sup id="cite_ref-:3_17-4" class="reference"><a href="#cite_note-:3-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup> This model creates a more realistic looking white highlight based on the perspective of the viewer.<sup id="cite_ref-:1_14-4" class="reference"><a href="#cite_note-:1-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading4"><h4 id="Blinn-Phong_illumination_model">Blinn-Phong illumination model</h4></div>
<div role="note" class="hatnote navigation-not-searchable">Main article: <a href="Blinn%E2%80%93Phong_reflection_model" title="Blinn–Phong reflection model">Blinn–Phong reflection model</a></div>
<p>The Blinn-Phong illumination model is similar to the Phong model as it uses specular light to create a highlight on an object based on its shininess.<sup id="cite_ref-:16_19-0" class="reference"><a href="#cite_note-:16-19"><span class="cite-bracket">[</span>19<span class="cite-bracket">]</span></a></sup> The Blinn-Phong differs from the Phong illumination model, as the Blinn-Phong model uses the vector normal to the surface of the object and halfway between the light source and the viewer.<sup id="cite_ref-:1_14-5" class="reference"><a href="#cite_note-:1-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup> This model is used in order to have accurate specular lighting and reduced computation time.<sup id="cite_ref-:1_14-6" class="reference"><a href="#cite_note-:1-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup> The process takes less time because finding the reflected light vector's direction is a more involved computation than calculating the halfway <a href="Normal_(geometry)" title="Normal (geometry)">normal vector</a>.<sup id="cite_ref-:16_19-1" class="reference"><a href="#cite_note-:16-19"><span class="cite-bracket">[</span>19<span class="cite-bracket">]</span></a></sup> While this is similar to the Phong model, it produces different visual results, and the specular reflection exponent or shininess might need modification in order to produce a similar specular reflection.<sup id="cite_ref-20" class="reference"><a href="#cite_note-20"><span class="cite-bracket">[</span>20<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Global_illumination">Global illumination</h3></div>
<div role="note" class="hatnote navigation-not-searchable">Main article: <a href="Global_illumination" title="Global illumination">Global illumination</a></div>
<p>Global illumination differs from local illumination because it calculates light as it would travel throughout the entire scene.<sup id="cite_ref-:2_16-3" class="reference"><a href="#cite_note-:2-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup> This lighting is based more heavily in physics and optics, with light rays scattering, reflecting, and indefinitely bouncing throughout the scene.<sup id="cite_ref-:13_21-0" class="reference"><a href="#cite_note-:13-21"><span class="cite-bracket">[</span>21<span class="cite-bracket">]</span></a></sup> There is still active research being done on global illumination as it requires more computational power than local illumination.<sup id="cite_ref-:18_22-0" class="reference"><a href="#cite_note-:18-22"><span class="cite-bracket">[</span>22<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading4"><h4 id="Ray_tracing">Ray tracing</h4></div>
<div role="note" class="hatnote navigation-not-searchable">Main article: <a href="Ray_tracing_(graphics)" title="Ray tracing (graphics)">Ray tracing (graphics)</a></div>
<p>Light sources emit rays that interact with various surfaces through absorption, reflection, or refraction.<sup id="cite_ref-:72_3-1" class="reference"><a href="#cite_note-:72-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> An observer of the scene would see any light source that reaches their eyes; a ray that does not reach the observer goes unnoticed.<sup id="cite_ref-23" class="reference"><a href="#cite_note-23"><span class="cite-bracket">[</span>23<span class="cite-bracket">]</span></a></sup> It is possible to simulate this by having all of the light sources emit rays and then compute how each of them interact with all of the objects in the scene.<sup id="cite_ref-:17_24-0" class="reference"><a href="#cite_note-:17-24"><span class="cite-bracket">[</span>24<span class="cite-bracket">]</span></a></sup> However, this process is inefficient as most of the light rays would not reach the observer and would waste processing time.<sup id="cite_ref-:21_25-0" class="reference"><a href="#cite_note-:21-25"><span class="cite-bracket">[</span>25<span class="cite-bracket">]</span></a></sup> Ray tracing solves this problem by reversing the process, instead sending view rays from the observer and calculating how they interact until they reach a light source.<sup id="cite_ref-:17_24-1" class="reference"><a href="#cite_note-:17-24"><span class="cite-bracket">[</span>24<span class="cite-bracket">]</span></a></sup> Although this way more effectively uses processing time and produces a light simulation closely imitating natural lighting, ray tracing still has high computation costs due to the high amounts of light that reach viewer's eyes.<sup id="cite_ref-:0_26-0" class="reference"><a href="#cite_note-:0-26"><span class="cite-bracket">[</span>26<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading4"><h4 id="Radiosity">Radiosity</h4></div>
<div role="note" class="hatnote navigation-not-searchable">Main article: <a href="Radiosity_(computer_graphics)" title="Radiosity (computer graphics)">Radiosity (computer graphics)</a></div>
<p>Radiosity takes into account the energy given off by surrounding objects and the light source.<sup id="cite_ref-:2_16-4" class="reference"><a href="#cite_note-:2-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup> Unlike ray tracing, which is dependent on the position and orientation of the observer, radiosity lighting is independent of view position.<sup id="cite_ref-:21_25-1" class="reference"><a href="#cite_note-:21-25"><span class="cite-bracket">[</span>25<span class="cite-bracket">]</span></a></sup> Radiosity requires more computational power than ray tracing, but can be more useful for scenes with static lighting because it would only have to be computed once.<sup id="cite_ref-27" class="reference"><a href="#cite_note-27"><span class="cite-bracket">[</span>27<span class="cite-bracket">]</span></a></sup> The surfaces of a scene can be divided into a large amount of patches; each patch radiates some light and affects the other patches, then a large set of equations needs to be solved simultaneously in order to get the final radiosity of each patch.<sup id="cite_ref-:0_26-1" class="reference"><a href="#cite_note-:0-26"><span class="cite-bracket">[</span>26<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading4"><h4 id="Photon_mapping">Photon mapping</h4></div>
<div role="note" class="hatnote navigation-not-searchable">Main article: <a href="Photon_mapping" title="Photon mapping">Photon mapping</a></div>
<p><a href="Photon" title="Photon">Photon</a> mapping was created as a two-pass global illumination algorithm that is more efficient than ray tracing.<sup id="cite_ref-:19_28-0" class="reference"><a href="#cite_note-:19-28"><span class="cite-bracket">[</span>28<span class="cite-bracket">]</span></a></sup> It is the basic principle of tracking photons released from a light source through a series of stages.<sup id="cite_ref-:19_28-1" class="reference"><a href="#cite_note-:19-28"><span class="cite-bracket">[</span>28<span class="cite-bracket">]</span></a></sup> The first pass includes the photons being released from a light source and bouncing off their first object; this map of where the photons are located is then recorded.<sup id="cite_ref-:18_22-1" class="reference"><a href="#cite_note-:18-22"><span class="cite-bracket">[</span>22<span class="cite-bracket">]</span></a></sup> The photon map contains both the position and direction of each photon which either bounce or are absorbed.<sup id="cite_ref-:19_28-2" class="reference"><a href="#cite_note-:19-28"><span class="cite-bracket">[</span>28<span class="cite-bracket">]</span></a></sup> The second pass happens with <a href="Rendering_(computer_graphics)" title="Rendering (computer graphics)">rendering</a> where the reflections are calculated for different surfaces.<sup id="cite_ref-:20_29-0" class="reference"><a href="#cite_note-:20-29"><span class="cite-bracket">[</span>29<span class="cite-bracket">]</span></a></sup> In this process, the photon map is decoupled from the geometry of the scene, meaning rendering can be calculated separately.<sup id="cite_ref-:18_22-2" class="reference"><a href="#cite_note-:18-22"><span class="cite-bracket">[</span>22<span class="cite-bracket">]</span></a></sup> It is a useful technique because it can simulate caustics, and pre-processing steps do not need to be repeated if the view or objects change.<sup id="cite_ref-:20_29-1" class="reference"><a href="#cite_note-:20-29"><span class="cite-bracket">[</span>29<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Polygonal_shading">Polygonal shading</h2></div>
<div role="note" class="hatnote navigation-not-searchable">Main article: <a href="Shading" title="Shading">Shading</a></div>
<p>Polygonal <a href="Shading" title="Shading">shading</a> is part of the <a href="Rasterisation" title="Rasterisation">rasterization</a> process where <a href="3D_computer_graphics" title="3D computer graphics">3D</a> models are drawn as <a href="2D_computer_graphics" title="2D computer graphics">2D</a> pixel images.<sup id="cite_ref-:4_18-3" class="reference"><a href="#cite_note-:4-18"><span class="cite-bracket">[</span>18<span class="cite-bracket">]</span></a></sup> Shading applies a lighting model, in conjunction with the geometric attributes of the 3D model, to determine how lighting should be represented at each <a href="Fragment_(computer_graphics)" title="Fragment (computer graphics)">fragment</a> (or pixel) of the resulting image.<sup id="cite_ref-:4_18-4" class="reference"><a href="#cite_note-:4-18"><span class="cite-bracket">[</span>18<span class="cite-bracket">]</span></a></sup> The <a href="Polygon_mesh" title="Polygon mesh">polygons</a> of the 3D model store the geometric values needed for the shading process.<sup id="cite_ref-:11_30-0" class="reference"><a href="#cite_note-:11-30"><span class="cite-bracket">[</span>30<span class="cite-bracket">]</span></a></sup> This information includes <a href="Vertex_(geometry)" title="Vertex (geometry)">vertex</a> positional values and <a href="Normal_(geometry)" title="Normal (geometry)">surface normals</a>, but can contain optional data, such as <a href="Texture_mapping" title="Texture mapping">texture</a> and <a href="Bump_mapping" title="Bump mapping">bump</a> maps.<sup id="cite_ref-31" class="reference"><a href="#cite_note-31"><span class="cite-bracket">[</span>31<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Flat_shading">Flat shading</h3></div>
<p>Flat shading is a simple shading model with a uniform application of lighting and color per polygon.<sup id="cite_ref-:12_32-0" class="reference"><a href="#cite_note-:12-32"><span class="cite-bracket">[</span>32<span class="cite-bracket">]</span></a></sup> The color and normal of one vertex is used to calculate the shading of the entire polygon.<sup id="cite_ref-:4_18-5" class="reference"><a href="#cite_note-:4-18"><span class="cite-bracket">[</span>18<span class="cite-bracket">]</span></a></sup> Flat shading is inexpensive, as lighting for each polygon only needs to be calculated once per render.<sup id="cite_ref-:12_32-1" class="reference"><a href="#cite_note-:12-32"><span class="cite-bracket">[</span>32<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Gouraud_shading">Gouraud shading</h3></div>
<p><a href="Gouraud_shading" title="Gouraud shading">Gouraud shading</a> is a type of interpolated shading where the values inside of each polygon are a blend of its vertex values.<sup id="cite_ref-:4_18-6" class="reference"><a href="#cite_note-:4-18"><span class="cite-bracket">[</span>18<span class="cite-bracket">]</span></a></sup> Each vertex is given its own normal consisting of the average of the surface normals of the surrounding polygons.<sup id="cite_ref-:12_32-2" class="reference"><a href="#cite_note-:12-32"><span class="cite-bracket">[</span>32<span class="cite-bracket">]</span></a></sup> The lighting and shading at that vertex is then calculated using the average normal and the lighting model of choice.<sup id="cite_ref-:12_32-3" class="reference"><a href="#cite_note-:12-32"><span class="cite-bracket">[</span>32<span class="cite-bracket">]</span></a></sup> This process is repeated for all the vertices in the 3D model.<sup id="cite_ref-:7_2-1" class="reference"><a href="#cite_note-:7-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> Next, the shading of the edges between the vertices is calculated by <a href="Interpolation" title="Interpolation">interpolating</a> between the vertex values.<sup id="cite_ref-:7_2-2" class="reference"><a href="#cite_note-:7-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> Finally, the shading inside of the polygon is calculated as an interpolation of the surrounding edge values.<sup id="cite_ref-:7_2-3" class="reference"><a href="#cite_note-:7-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> Gouraud shading generates a smooth lighting effect across the 3D model's surface.<sup id="cite_ref-:7_2-4" class="reference"><a href="#cite_note-:7-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Phong_shading">Phong shading</h3></div>
<p><a href="Phong_shading" title="Phong shading">Phong shading</a>, similar to Gouraud shading, is another type of interpolative shading that blends between vertex values to shade polygons.<sup id="cite_ref-:13_21-1" class="reference"><a href="#cite_note-:13-21"><span class="cite-bracket">[</span>21<span class="cite-bracket">]</span></a></sup> The key difference between the two is that Phong shading interpolates the <a href="Vertex_normal" title="Vertex normal">vertex normal</a> values over the whole polygon before it calculates its shading.<sup id="cite_ref-:12_32-4" class="reference"><a href="#cite_note-:12-32"><span class="cite-bracket">[</span>32<span class="cite-bracket">]</span></a></sup> This contrasts with Gouraud shading which interpolates the already shaded vertex values over the whole polygon.<sup id="cite_ref-:13_21-2" class="reference"><a href="#cite_note-:13-21"><span class="cite-bracket">[</span>21<span class="cite-bracket">]</span></a></sup> Once Phong shading has calculated the normal of a fragment (pixel) inside the polygon, it can then apply a lighting model, shading that fragment.<sup id="cite_ref-:12_32-5" class="reference"><a href="#cite_note-:12-32"><span class="cite-bracket">[</span>32<span class="cite-bracket">]</span></a></sup> This process is repeated until each polygon of the 3D model is shaded.<sup id="cite_ref-:13_21-3" class="reference"><a href="#cite_note-:13-21"><span class="cite-bracket">[</span>21<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Lighting_effects">Lighting effects</h2></div>
<div class="mw-heading mw-heading3"><h3 id="Caustics">Caustics</h3></div>
<div role="note" class="hatnote navigation-not-searchable">Main article: <a href="Caustic_(optics)" title="Caustic (optics)">Caustic (optics)</a></div>
<p><a href="Caustic_(optics)" title="Caustic (optics)">Caustics</a> are an effect of light reflected and refracted in a medium with curved interfaces or reflected off a curved surface.<sup id="cite_ref-:14_33-0" class="reference"><a href="#cite_note-:14-33"><span class="cite-bracket">[</span>33<span class="cite-bracket">]</span></a></sup> They appear as ribbons of concentrated light and are often seen when looking at bodies of water or glass.<sup id="cite_ref-:15_34-0" class="reference"><a href="#cite_note-:15-34"><span class="cite-bracket">[</span>34<span class="cite-bracket">]</span></a></sup> Caustics can be implemented in 3D graphics by blending a caustic <a href="Texture_mapping" title="Texture mapping">texture map</a> with the texture map of the affected objects.<sup id="cite_ref-:15_34-1" class="reference"><a href="#cite_note-:15-34"><span class="cite-bracket">[</span>34<span class="cite-bracket">]</span></a></sup> The caustics texture can either be a static image that is animated to mimic the effects of caustics, or a <a href="Real-time_computing" title="Real-time computing">Real-time</a> calculation of caustics onto a blank image.<sup id="cite_ref-:15_34-2" class="reference"><a href="#cite_note-:15-34"><span class="cite-bracket">[</span>34<span class="cite-bracket">]</span></a></sup> The latter is more complicated and requires backwards <a href="Ray_tracing_(graphics)" title="Ray tracing (graphics)">ray tracing</a> to simulate photons moving through the environment of the 3D render.<sup id="cite_ref-:14_33-1" class="reference"><a href="#cite_note-:14-33"><span class="cite-bracket">[</span>33<span class="cite-bracket">]</span></a></sup> In a photon mapping illumination model, <a href="Monte_Carlo_sampling" class="mw-redirect" title="Monte Carlo sampling">Monte Carlo</a> sampling is used in conjunction with the ray tracing to compute the intensity of light caused by the caustics.<sup id="cite_ref-:14_33-2" class="reference"><a href="#cite_note-:14-33"><span class="cite-bracket">[</span>33<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Reflection_mapping">Reflection mapping</h3></div>
<div role="note" class="hatnote navigation-not-searchable">Main article: <a href="Reflection_mapping" title="Reflection mapping">Reflection mapping</a></div>
<p>Reflection mapping (also known as environment mapping) is a technique which uses 2D environment maps to create the effect of <a href="Reflectance" title="Reflectance">reflectivity</a> without using ray tracing.<sup id="cite_ref-:5_35-0" class="reference"><a href="#cite_note-:5-35"><span class="cite-bracket">[</span>35<span class="cite-bracket">]</span></a></sup> Since the appearances of reflective objects depend on the relative positions of the viewers, the objects, and the surrounding environments, graphics algorithms produce reflection vectors to determine how to color the objects based on these elements.<sup id="cite_ref-36" class="reference"><a href="#cite_note-36"><span class="cite-bracket">[</span>36<span class="cite-bracket">]</span></a></sup> Using 2D environment maps rather than fully rendered, 3D objects to represent surroundings, reflections on objects can be determined using simple, computationally inexpensive algorithms.<sup id="cite_ref-:5_35-1" class="reference"><a href="#cite_note-:5-35"><span class="cite-bracket">[</span>35<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Particle_systems">Particle systems</h3></div>
<div role="note" class="hatnote navigation-not-searchable">Main article: <a href="Particle_system" title="Particle system">Particle system</a></div>
<p>Particle systems use collections of small <a href="Particle" title="Particle">particles</a> to model chaotic, high-complexity events, such as fire, moving liquids, explosions, and moving hair.<sup id="cite_ref-:6_37-0" class="reference"><a href="#cite_note-:6-37"><span class="cite-bracket">[</span>37<span class="cite-bracket">]</span></a></sup> Particles which make up the complex animation are distributed by an emitter, which gives each particle its properties, such as speed, lifespan, and color.<sup id="cite_ref-:6_37-1" class="reference"><a href="#cite_note-:6-37"><span class="cite-bracket">[</span>37<span class="cite-bracket">]</span></a></sup> Over time, these particles may move, change color, or vary other properties, depending on the effect.<sup id="cite_ref-:6_37-2" class="reference"><a href="#cite_note-:6-37"><span class="cite-bracket">[</span>37<span class="cite-bracket">]</span></a></sup> Typically, particle systems incorporate <a href="Randomness" title="Randomness">randomness</a>, such as in the initial properties the emitter gives each particle, to make the effect realistic and non-uniform.<sup id="cite_ref-:6_37-3" class="reference"><a href="#cite_note-:6-37"><span class="cite-bracket">[</span>37<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-38" class="reference"><a href="#cite_note-38"><span class="cite-bracket">[</span>38<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<ul><li><a href="Per-pixel_lighting" title="Per-pixel lighting">Per-pixel lighting</a></li>
<li><a href="Computer_graphics" title="Computer graphics">Computer graphics</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */
.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}
/* end https://en.wikipedia.org/ */
</style><div class="reflist">
<div class="mw-references-wrap mw-references-columns"><ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-1">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */
.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}
/* end https://en.wikipedia.org/ */
</style><cite class="citation news cs1"><a rel="nofollow" class="external text" href="https://garagefarm.net/blog/light-the-art-of-exposure">"Light: The art of exposure"</a>. <i>GarageFarm</i>. 2020-11-11<span class="reference-accessdate">. Retrieved <span class="nowrap">2020-11-11</span></span>.</cite></span>
</li>
<li id="cite_note-:7-2"><span class="mw-cite-backlink">^ <a href="#cite_ref-:7_2-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-:7_2-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-:7_2-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-:7_2-3"><sup><i><b>d</b></i></sup></a> <a href="#cite_ref-:7_2-4"><sup><i><b>e</b></i></sup></a></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.cs.uic.edu/~jbell/CourseNotes/ComputerGraphics/LightingAndShading.html">"Intro to Computer Graphics: Lighting and Shading"</a>. <i>www.cs.uic.edu</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2019-11-05</span></span>.</cite></span>
</li>
<li id="cite_note-:72-3"><span class="mw-cite-backlink">^ <a href="#cite_ref-:72_3-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-:72_3-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.cs.uic.edu/~jbell/CourseNotes/ComputerGraphics/LightingAndShading.html">"Intro to Computer Graphics: Lighting and Shading"</a>. <i>www.cs.uic.edu</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2019-11-05</span></span>.</cite></span>
</li>
<li id="cite_note-:8-4"><span class="mw-cite-backlink">^ <a href="#cite_ref-:8_4-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-:8_4-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-:8_4-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-:8_4-3"><sup><i><b>d</b></i></sup></a></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.bcchang.com/immersive/ygbasics/lighting.html">"Lighting in 3D Graphics"</a>. <i>www.bcchang.com</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2019-11-05</span></span>.</cite></span>
</li>
<li id="cite_note-:9-5"><span class="mw-cite-backlink">^ <a href="#cite_ref-:9_5-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-:9_5-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-:9_5-2"><sup><i><b>c</b></i></sup></a></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.pluralsight.com/blog/film-games/understanding-different-light-types">"Understanding Different Light Types"</a>. <i>www.pluralsight.com</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2019-11-05</span></span>.</cite></span>
</li>
<li id="cite_note-:73-6"><span class="mw-cite-backlink">^ <a href="#cite_ref-:73_6-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-:73_6-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-:73_6-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-:73_6-3"><sup><i><b>d</b></i></sup></a></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.cs.uic.edu/~jbell/CourseNotes/ComputerGraphics/LightingAndShading.html">"Intro to Computer Graphics: Lighting and Shading"</a>. <i>www.cs.uic.edu</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2019-11-05</span></span>.</cite></span>
</li>
<li id="cite_note-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-7">^</a></b></span> <span class="reference-text"><cite id="CITEREFLagardede_Rousiers2014" class="citation conference cs1">Lagarde, Sebastien; de Rousiers, Charles (Summer 2014). <a rel="nofollow" class="external text" href="https://www.ea.com/frostbite/news/moving-frostbite-to-pb"><i>Moving Frostbite to Physically Based Rendering 3.0</i></a>. SIGGRAPH.</cite></span>
</li>
<li id="cite_note-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-8">^</a></b></span> <span class="reference-text"><cite id="CITEREFPharrHumphreysWenzel2016" class="citation book cs1">Pharr, Matt; Humphreys, Greg; Wenzel, Jakob (2016). <i>Physically Based Rendering: From Theory to Implementation</i> (3rd ed.). Morgan Kaufmann. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-0128006450</bdi>.</cite></span>
</li>
<li id="cite_note-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-9">^</a></b></span> <span class="reference-text"><cite id="CITEREFVergnePacanowskiBarlaGranier2010" class="citation book cs1">Vergne, Romain; Pacanowski, Romain; Barla, Pascal; Granier, Xavier; Schlick, Christophe (February 19, 2010). <a rel="nofollow" class="external text" href="https://hal.inria.fr/inria-00449828">"Radiance Scaling for Versatile Surface Enhancement"</a>. <i>Proceedings of the 2010 ACM SIGGRAPH symposium on Interactive 3D Graphics and Games</i>. ACM. pp. <span class="nowrap">143–</span>150. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F1730804.1730827">10.1145/1730804.1730827</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>9781605589398</bdi>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a> <a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:18291692">18291692</a> – via hal.inria.fr.</cite></span>
</li>
<li id="cite_note-10"><span class="mw-cite-backlink"><b><a href="#cite_ref-10">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://visao.ca/what-is-hdri/#:~:text=High%20dynamic%20range%20images%20are,look%20cartoonish%20and%20less%20professional.">"What are HDRI images?"</a>. 13 January 2021.</cite></span>
</li>
<li id="cite_note-:82-11"><span class="mw-cite-backlink">^ <a href="#cite_ref-:82_11-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-:82_11-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.bcchang.com/immersive/ygbasics/lighting.html">"Lighting in 3D Graphics"</a>. <i>www.bcchang.com</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2019-11-05</span></span>.</cite></span>
</li>
<li id="cite_note-:10-12"><span class="mw-cite-backlink">^ <a href="#cite_ref-:10_12-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-:10_12-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-:10_12-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-:10_12-3"><sup><i><b>d</b></i></sup></a> <a href="#cite_ref-:10_12-4"><sup><i><b>e</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFPollard2004" class="citation web cs1"><a href="Nancy_Pollard" title="Nancy Pollard">Pollard, Nancy</a> (Spring 2004). <a rel="nofollow" class="external text" href="http://graphics.cs.cmu.edu/nsp/course/15-462/Spring04/slides/07-lighting.pdf">"Lighting and Shading"</a> <span class="cs1-format">(PDF)</span>.</cite></span>
</li>
<li id="cite_note-:83-13"><span class="mw-cite-backlink">^ <a href="#cite_ref-:83_13-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-:83_13-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-:83_13-2"><sup><i><b>c</b></i></sup></a></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.bcchang.com/immersive/ygbasics/lighting.html">"Lighting in 3D Graphics"</a>. <i>www.bcchang.com</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2019-11-05</span></span>.</cite></span>
</li>
<li id="cite_note-:1-14"><span class="mw-cite-backlink">^ <a href="#cite_ref-:1_14-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-:1_14-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-:1_14-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-:1_14-3"><sup><i><b>d</b></i></sup></a> <a href="#cite_ref-:1_14-4"><sup><i><b>e</b></i></sup></a> <a href="#cite_ref-:1_14-5"><sup><i><b>f</b></i></sup></a> <a href="#cite_ref-:1_14-6"><sup><i><b>g</b></i></sup></a></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://learnopengl.com/Lighting/Basic-Lighting">"LearnOpenGL - Basic Lighting"</a>. <i>learnopengl.com</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2019-11-08</span></span>.</cite></span>
</li>
<li id="cite_note-15"><span class="mw-cite-backlink"><b><a href="#cite_ref-15">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.cs.uic.edu/~jbell/CourseNotes/ComputerGraphics/LightingAndShading.html">"Intro to Computer Graphics: Lighting and Shading"</a>. <i>www.cs.uic.edu</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2019-11-08</span></span>.</cite></span>
</li>
<li id="cite_note-:2-16"><span class="mw-cite-backlink">^ <a href="#cite_ref-:2_16-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-:2_16-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-:2_16-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-:2_16-3"><sup><i><b>d</b></i></sup></a> <a href="#cite_ref-:2_16-4"><sup><i><b>e</b></i></sup></a></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.cc.gatech.edu/classes/AY2003/cs4451a_fall/global-illumination.pdf">"Global Illumination"</a> <span class="cs1-format">(PDF)</span>. <i>Georgia Tech Classes</i>. 2002.</cite></span>
</li>
<li id="cite_note-:3-17"><span class="mw-cite-backlink">^ <a href="#cite_ref-:3_17-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-:3_17-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-:3_17-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-:3_17-3"><sup><i><b>d</b></i></sup></a> <a href="#cite_ref-:3_17-4"><sup><i><b>e</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFFarrell" class="citation web cs1">Farrell. <a rel="nofollow" class="external text" href="http://www.cs.kent.edu/~farrell/cg01/lectures/color/illum_local.html">"Local Illumination"</a>. <i>Kent University</i>.</cite></span>
</li>
<li id="cite_note-:4-18"><span class="mw-cite-backlink">^ <a href="#cite_ref-:4_18-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-:4_18-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-:4_18-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-:4_18-3"><sup><i><b>d</b></i></sup></a> <a href="#cite_ref-:4_18-4"><sup><i><b>e</b></i></sup></a> <a href="#cite_ref-:4_18-5"><sup><i><b>f</b></i></sup></a> <a href="#cite_ref-:4_18-6"><sup><i><b>g</b></i></sup></a></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://cglearn.codelight.eu/pub/computer-graphics/shading-and-lighting">"Computer Graphics: Shading and Lighting"</a>. <i>cglearn.codelight.eu</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2019-10-30</span></span>.</cite></span>
</li>
<li id="cite_note-:16-19"><span class="mw-cite-backlink">^ <a href="#cite_ref-:16_19-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-:16_19-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text">James F. Blinn (1977). "Models of light reflection for computer synthesized pictures". <i>Proc. 4th annual conference on computer graphics and interactive techniques</i>: 192–198. <a href="CiteSeerX" title="CiteSeerX">CiteSeerX</a> 10.1.1.131.7741. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F563858.563893">10.1145/563858.563893</a></span>
</li>
<li id="cite_note-20"><span class="mw-cite-backlink"><b><a href="#cite_ref-20">^</a></b></span> <span class="reference-text">Jacob's University, "<a rel="nofollow" class="external text" href="http://www.faculty.jacobs-university.de/llinsen/teaching/320322_Fall2010/lecture12.pdf">Blinn-Phong Reflection Model</a>", 2010.</span>
</li>
<li id="cite_note-:13-21"><span class="mw-cite-backlink">^ <a href="#cite_ref-:13_21-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-:13_21-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-:13_21-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-:13_21-3"><sup><i><b>d</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFLi2018" class="citation web cs1">Li, Hao (2018). <a rel="nofollow" class="external text" href="http://www.hao-li.com/cs420-fs2018/slides/Lecture05.2.pdf">"Shading in OpenGL"</a> <span class="cs1-format">(PDF)</span>.</cite></span>
</li>
<li id="cite_note-:18-22"><span class="mw-cite-backlink">^ <a href="#cite_ref-:18_22-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-:18_22-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-:18_22-2"><sup><i><b>c</b></i></sup></a></span> <span class="reference-text">Li, Hao (Fall 2018). "Global Illumination" (PDF).</span>
</li>
<li id="cite_note-23"><span class="mw-cite-backlink"><b><a href="#cite_ref-23">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://developer.nvidia.com/rtx/raytracing">"Introducing the NVIDIA RTX Ray Tracing Platform"</a>. <i>NVIDIA Developer</i>. 2018-03-06<span class="reference-accessdate">. Retrieved <span class="nowrap">2019-11-08</span></span>.</cite></span>
</li>
<li id="cite_note-:17-24"><span class="mw-cite-backlink">^ <a href="#cite_ref-:17_24-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-:17_24-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text">Reif, J. H. (1994). "<a rel="nofollow" class="external text" href="https://users.cs.duke.edu/~reif/paper/tygar/raytracing.pdf">Computability and Complexity of Ray Tracing</a>"(PDF). <i>Discrete and Computational Geometry</i>.</span>
</li>
<li id="cite_note-:21-25"><span class="mw-cite-backlink">^ <a href="#cite_ref-:21_25-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-:21_25-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text">Wallace, John R.; Cohen, Michael F.; Greenberg, Donald P. (1987). "A Two-pass Solution to the Rendering Equation: A Synthesis of Ray Tracing and Radiosity Methods". <i>Proceedings of the 14th Annual Conference on Computer Graphics and Interactive Techniques</i>. SIGGRAPH '87. New York, NY, USA: ACM: 311–320. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F37401.37438">10.1145/37401.37438</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>9780897912273</bdi>.</span>
</li>
<li id="cite_note-:0-26"><span class="mw-cite-backlink">^ <a href="#cite_ref-:0_26-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-:0_26-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFGreenberg1989" class="citation journal cs1">Greenberg, Donald P. (1989-04-14). "Light Reflection Models for Computer Graphics". <i>Science</i>. <b>244</b> (4901): <span class="nowrap">166–</span>173. <a href="Bibcode_(identifier)" class="mw-redirect" title="Bibcode (identifier)">Bibcode</a>:<a rel="nofollow" class="external text" href="https://ui.adsabs.harvard.edu/abs/1989Sci...244..166G">1989Sci...244..166G</a>. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1126%2Fscience.244.4901.166">10.1126/science.244.4901.166</a>. <a href="ISSN_(identifier)" class="mw-redirect" title="ISSN (identifier)">ISSN</a> <a rel="nofollow" class="external text" href="https://search.worldcat.org/issn/0036-8075">0036-8075</a>. <a href="PMID_(identifier)" class="mw-redirect" title="PMID (identifier)">PMID</a> <a rel="nofollow" class="external text" href="https://pubmed.ncbi.nlm.nih.gov/17835348">17835348</a>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a> <a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:46575183">46575183</a>.</cite></span>
</li>
<li id="cite_note-27"><span class="mw-cite-backlink"><b><a href="#cite_ref-27">^</a></b></span> <span class="reference-text">Cindy Goral, Kenneth E. Torrance, Donald P. Greenberg and B. Battaile,"<a rel="nofollow" class="external text" href="http://www.cs.rpi.edu/~cutler/classes/advancedgraphics/S07/lectures/goral.pdf">Modeling the interaction of light between diffuse surfaces</a>", <i><a href="Computer_Graphics_(Publication)" class="mw-redirect" title="Computer Graphics (Publication)">Computer Graphics</a></i>, Vol. 18, No. 3. (<a href="PDF" title="PDF">PDF</a>)</span>
</li>
<li id="cite_note-:19-28"><span class="mw-cite-backlink">^ <a href="#cite_ref-:19_28-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-:19_28-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-:19_28-2"><sup><i><b>c</b></i></sup></a></span> <span class="reference-text">Wann Jensen, Henrik (1996). "<a rel="nofollow" class="external text" href="http://graphics.ucsd.edu/~henrik/papers/photon_map/global_illumination_using_photon_maps_egwr96.pdf">Global Illumination using Photon Maps</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20080808140048/http://graphics.ucsd.edu/~henrik/papers/photon_map/global_illumination_using_photon_maps_egwr96.pdf">Archived</a> 2008-08-08 at the <a href="Wayback_Machine" title="Wayback Machine">Wayback Machine</a>" (PDF). <i>Rendering Techniques ’96</i>: 21–30.</span>
</li>
<li id="cite_note-:20-29"><span class="mw-cite-backlink">^ <a href="#cite_ref-:20_29-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-:20_29-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.cs.wpi.edu/~emmanuel/courses/cs563/write_ups/zackw/photon_mapping/PhotonMapping.html">"Photon Mapping - Zack Waters"</a>. <i>web.cs.wpi.edu</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2019-11-08</span></span>.</cite></span>
</li>
<li id="cite_note-:11-30"><span class="mw-cite-backlink"><b><a href="#cite_ref-:11_30-0">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://math.hws.edu/graphicsbook/c4/s1.html">"Introduction to Computer Graphics, Section 4.1 -- Introduction to Lighting"</a>. <i>math.hws.edu</i>.</cite></span>
</li>
<li id="cite_note-31"><span class="mw-cite-backlink"><b><a href="#cite_ref-31">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.khronos.org/opengl/wiki/Vertex_Specification#Primitives">"Vertex Specification - OpenGL Wiki"</a>. <i>www.khronos.org</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2019-11-06</span></span>.</cite></span>
</li>
<li id="cite_note-:12-32"><span class="mw-cite-backlink">^ <a href="#cite_ref-:12_32-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-:12_32-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-:12_32-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-:12_32-3"><sup><i><b>d</b></i></sup></a> <a href="#cite_ref-:12_32-4"><sup><i><b>e</b></i></sup></a> <a href="#cite_ref-:12_32-5"><sup><i><b>f</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFFoley" class="citation web cs1">Foley. <a rel="nofollow" class="external text" href="https://www.cs.brandeis.edu/~cs155/Lecture_16.pdf">"Illumination Models and Shading"</a> <span class="cs1-format">(PDF)</span>.</cite></span>
</li>
<li id="cite_note-:14-33"><span class="mw-cite-backlink">^ <a href="#cite_ref-:14_33-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-:14_33-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-:14_33-2"><sup><i><b>c</b></i></sup></a></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://developer.nvidia.com/gpugems/GPUGems/gpugems_ch02.html">"GPU Gems"</a>. <i>NVIDIA Developer</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2019-10-30</span></span>.</cite></span>
</li>
<li id="cite_note-:15-34"><span class="mw-cite-backlink">^ <a href="#cite_ref-:15_34-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-:15_34-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-:15_34-2"><sup><i><b>c</b></i></sup></a></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.dualheights.se/caustics/caustics-water-texturing-using-unity3d.shtml">"Caustics water texturing using Unity 3D"</a>. <i>www.dualheights.se</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2019-11-06</span></span>.</cite></span>
</li>
<li id="cite_note-:5-35"><span class="mw-cite-backlink">^ <a href="#cite_ref-:5_35-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-:5_35-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://cglearn.codelight.eu/pub/computer-graphics/environment-mapping">"Computer Graphics: Environment Mapping"</a>. <i>cglearn.codelight.eu</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2019-11-01</span></span>.</cite></span>
</li>
<li id="cite_note-36"><span class="mw-cite-backlink"><b><a href="#cite_ref-36">^</a></b></span> <span class="reference-text"><cite id="CITEREFShen" class="citation web cs1">Shen, Han-Wei. <a rel="nofollow" class="external text" href="http://web.cse.ohio-state.edu/~wang.3602/courses/cse5542-2013-spring/17-env.pdf">"Environment Mapping"</a> <span class="cs1-format">(PDF)</span>.</cite></span>
</li>
<li id="cite_note-:6-37"><span class="mw-cite-backlink">^ <a href="#cite_ref-:6_37-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-:6_37-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-:6_37-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-:6_37-3"><sup><i><b>d</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFBailey" class="citation web cs1">Bailey, Mike. <a rel="nofollow" class="external text" href="http://web.engr.oregonstate.edu/~mjb/cs491/Handouts/particlesystems.2pp.pdf">"Particle Systems"</a> <span class="cs1-format">(PDF)</span>.</cite></span>
</li>
<li id="cite_note-38"><span class="mw-cite-backlink"><b><a href="#cite_ref-38">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.cs.wpi.edu/~matt/courses/cs563/talks/psys.html">"Particle Systems"</a>. <i>web.cs.wpi.edu</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2019-11-01</span></span>.</cite></span>
</li>
</ol></div></div>
<div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1129693374">
/* start https://en.wikipedia.org/ */
.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}
/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1236075235">
/* start https://en.wikipedia.org/ */
.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}
/* end https://en.wikipedia.org/ */
</style></div><div role="navigation" class="navbox" aria-labelledby="Computer_graphics188" style="padding:3px"><table class="nowraplinks mw-collapsible mw-collapsed navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><style data-mw-deduplicate="TemplateStyles:r1239400231">
/* start https://en.wikipedia.org/ */
.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}
/* end https://en.wikipedia.org/ */
</style><div id="Computer_graphics188" style="font-size:114%;margin:0 4em"><a href="Computer_graphics_(computer_science)" title="Computer graphics (computer science)">Computer graphics</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Vector_graphics" title="Vector graphics">Vector graphics</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Diffusion_curve" title="Diffusion curve">Diffusion curve</a></li>
<li><a href="Pixel" title="Pixel">Pixel</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="2D_computer_graphics" title="2D computer graphics">2D graphics</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Alpha_compositing" title="Alpha compositing">Alpha compositing</a></li>
<li><a href="Layers_(digital_image_editing)" title="Layers (digital image editing)">Layers</a></li>
<li><a href="Text-to-image_model" title="Text-to-image model">Text-to-image</a></li></ul>
</div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th id="2.5D8" scope="row" class="navbox-group" style="width:1%"><a href="2.5D" title="2.5D">2.5D</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Isometric_video_game_graphics" title="Isometric video game graphics">Isometric graphics</a></li>
<li><a href="Mode_7" title="Mode 7">Mode 7</a></li>
<li><a href="Parallax_scrolling" title="Parallax scrolling">Parallax scrolling</a></li>
<li><a href="Ray_casting" title="Ray casting">Ray casting</a></li>
<li><a href="Skybox_(video_games)" title="Skybox (video games)">Skybox</a></li></ul>
</div></td></tr></tbody></table><div>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="3D_computer_graphics" title="3D computer graphics">3D graphics</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="3D_projection" title="3D projection">3D projection</a></li>
<li><a href="3D_rendering" title="3D rendering">3D rendering</a></li>
<li>(<a href="Image-based_modeling_and_rendering" title="Image-based modeling and rendering">Image-based</a></li>
<li><a href="Spectral_rendering" title="Spectral rendering">Spectral</a></li>
<li><a href="Unbiased_rendering" title="Unbiased rendering">Unbiased</a>)</li>
<li><a href="Aliasing" title="Aliasing">Aliasing</a></li>
<li><a href="Anisotropic_filtering" title="Anisotropic filtering">Anisotropic filtering</a></li>
<li><a href="Cel_shading" title="Cel shading">Cel shading</a></li>
<li><a href="Fluid_animation" title="Fluid animation">Fluid animation</a></li>
<li>
<ul><li><a href="Global_illumination" title="Global illumination">Global illumination</a></li></ul></li>
<li><a href="Hidden-surface_determination" title="Hidden-surface determination">Hidden-surface determination</a></li>
<li><a href="Polygon_mesh" title="Polygon mesh">Polygon mesh</a></li>
<li>(<a href="Triangle_mesh" title="Triangle mesh">Triangle mesh</a>)</li>
<li><a href="Shading" title="Shading">Shading</a>
<ul><li><a href="Deferred_shading" title="Deferred shading">Deferred</a></li></ul></li>
<li><a href="Surface_triangulation" title="Surface triangulation">Surface triangulation</a></li>
<li><a href="Wire-frame_model" title="Wire-frame model">Wire-frame model</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Concepts</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Affine_transformation" title="Affine transformation">Affine transformation</a></li>
<li><a href="Back-face_culling" title="Back-face culling">Back-face culling</a></li>
<li><a href="Clipping_(computer_graphics)" title="Clipping (computer graphics)">Clipping</a></li>
<li><a href="Collision_detection" title="Collision detection">Collision detection</a></li>
<li><a href="Planar_projection" title="Planar projection">Planar projection</a></li>
<li><a href="Reflection_(computer_graphics)" title="Reflection (computer graphics)">Reflection</a></li>
<li><a href="Rendering_(computer_graphics)" title="Rendering (computer graphics)">Rendering</a>
<ul><li><a href="Beam_tracing" title="Beam tracing">Beam tracing</a></li>
<li><a href="Cone_tracing" title="Cone tracing">Cone tracing</a></li>
<li><a href="Checkerboard_rendering" title="Checkerboard rendering">Checkerboard rendering</a></li>
<li><a href="Ray_tracing_(graphics)" title="Ray tracing (graphics)">Ray tracing</a></li>
<li><a href="Path_tracing" title="Path tracing">Path tracing</a></li>
<li><a href="Ray_casting" title="Ray casting">Ray casting</a></li>
<li><a href="Scanline_rendering" title="Scanline rendering">Scanline rendering</a></li></ul></li>
<li><a href="Rotation_(mathematics)" title="Rotation (mathematics)">Rotation</a></li>
<li><a href="Scaling_(geometry)" title="Scaling (geometry)">Scaling</a></li>
<li><a href="Shadow_mapping" title="Shadow mapping">Shadow mapping</a></li>
<li><a href="Shadow_volume" title="Shadow volume">Shadow volume</a></li>
<li><a href="Shear_matrix" class="mw-redirect" title="Shear matrix">Shear matrix</a></li>
<li><a href="Shader" title="Shader">Shader</a></li>
<li><a href="Texel_(graphics)" title="Texel (graphics)">Texel</a></li>
<li><a href="Translation_(geometry)" title="Translation (geometry)">Translation</a></li>
<li><a href="Volume_rendering" title="Volume rendering">Volume rendering</a></li>
<li><a href="Voxel" title="Voxel">Voxel</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Graphics_software" title="Graphics software">Graphics software</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="List_of_3D_computer_graphics_software" title="List of 3D computer graphics software">3D computer graphics software</a>
<ul><li><a href="List_of_3D_animation_software" title="List of 3D animation software">animation</a></li>
<li><a href="List_of_3D_modeling_software" title="List of 3D modeling software">modeling</a></li>
<li><a href="List_of_3D_rendering_software" title="List of 3D rendering software">rendering</a></li></ul></li>
<li><a href="Raster_graphics_editor" title="Raster graphics editor">Raster graphics editors</a></li>
<li><a href="Comparison_of_vector_graphics_editors" title="Comparison of vector graphics editors">Vector graphics editors</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Algorithms</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="List_of_computer_graphics_algorithms" class="mw-redirect" title="List of computer graphics algorithms">List of computer graphics algorithms</a></li></ul>
</div></td></tr></tbody></table></div></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-05-04" href="https://en.wikipedia.org/wiki/?title=Computer_graphics_lighting&oldid=1288776694">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
</body></html>